package com.stylefeng.guns.common.persistence.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.common.persistence.model.Webuser;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * C端用户表 Mapper 接口
 * </p>
 *
 * @author stylefeng123
 * @since 2018-01-21
 */
public interface WebuserMapper extends BaseMapper<Webuser> {

    /**
     * 根据userName查询昵称或实名
     * @param userName
     * @return
     */
    Integer selectByNickNameOrFullName(@Param("userName") String userName);

    int updateAccountMoney(@Param("userId") Integer userId, @Param("amount")BigDecimal amount);

    Webuser selectByTelNo(Webuser webuser);


    /**
     * 转人工处理提交
     * @param webuser
     */
    void updateMoney(Webuser webuser);

    /**
     * 根据name模糊查询实名
     * @param name
     * @return
     */
    List<Webuser> selectByName(@Param("name") String name);

    int updateByPrimaryKeySelective(Webuser webuser);

    int insertSelective(Webuser webuser);
    

    /**
     * 每天用户增量  (自己注册 会员推荐 合资公司 代理商）
     * 精确到日期
     * @param begindatetime 查询开始时间
     * @param  enddatetime  查询结束时间
     */
    List<Map<String,Object>> getReportByDay(@Param("begindatetime")String begindatetime, @Param("enddatetime")String enddatetime);


    /**
     * 每天用户增量  (自己注册 会员推荐 合资公司 代理商）
     * 精确到月
     * @param begindatetime 查询开始时间
     * @param  enddatetime  查询结束时间
     */
    List<Map<String,Object>> getReportByMonth(@Param("begindatetime")String begindatetime, @Param("enddatetime")String enddatetime);

    /**
     * 每天用户增量  (自己注册 会员推荐 合资公司 代理商）
     * 精确到年
     * @param begindatetime 查询开始时间
     * @param  enddatetime  查询结束时间
     */
    List<Map<String,Object>> getReportByYear(@Param("begindatetime")String begindatetime, @Param("enddatetime")String enddatetime);


    /**
     * 根据邀请码增加积分
     * @param nickname
     */
    Webuser getWebuserByInviteCode(@Param("inviteCode")String inviteCode);

    /**
     * 根据邀请码增加积分
     * @param id
     * @param number
     */
    void updateInviteCode(@Param("id")Integer id,@Param("number")Integer number);



}
